home *** CD-ROM | disk | FTP | other *** search
/ PC Master 5 / PC MASTER 5.iso / INTERNET / KIT / WIN95 / MSIE30.EXE / ieakjava.exe / classr.exe / com / ms / lang / SystemX.class (.txt) < prev   
Encoding:
Java Class File  |  1997-01-31  |  4.8 KB  |  246 lines

  1. package com.ms.lang;
  2.  
  3. import com.ms.awt.peer.ComponentPeerX;
  4. import java.applet.Applet;
  5. import java.awt.Component;
  6. import java.awt.peer.ComponentPeer;
  7.  
  8. public final class SystemX {
  9.    public static final int LANG_AFRIKAANS = 1078;
  10.    public static final int LANG_ALBANIAN = 1052;
  11.    public static final int LANG_BASQUE = 1069;
  12.    public static final int LANG_BULGARIAN = 1026;
  13.    public static final int LANG_BYELORUSSIAN = 1059;
  14.    public static final int LANG_CATALAN = 1027;
  15.    public static final int LANG_CHINESE = 1028;
  16.    public static final int SUBLANG_CHINESE_TRADITIONAL = 1028;
  17.    public static final int SUBLANG_CHINESE_SIMPLIFIED = 2052;
  18.    public static final int SUBLANG_CHINESE_HONGKONG = 3076;
  19.    public static final int SUBLANG_CHINESE_SINGAPORE = 4100;
  20.    public static final int LANG_CROATIAN = 1050;
  21.    public static final int LANG_CZECH = 1029;
  22.    public static final int LANG_DANISH = 1030;
  23.    public static final int LANG_DUTCH = 1043;
  24.    public static final int SUBLANG_DUTCH_BELGIAN = 2067;
  25.    public static final int LANG_ENGLISH = 1033;
  26.    public static final int SUBLANG_ENGLISH_US = 1033;
  27.    public static final int SUBLANG_ENGLISH_UK = 2057;
  28.    public static final int SUBLANG_ENGLISH_AUS = 3081;
  29.    public static final int SUBLANG_ENGLISH_CAN = 4105;
  30.    public static final int SUBLANG_ENGLISH_NZ = 5129;
  31.    public static final int SUBLANG_ENGLISH_EIRE = 6153;
  32.    public static final int LANG_ESTONIAN = 1061;
  33.    public static final int LANG_FINNISH = 1035;
  34.    public static final int LANG_FRENCH = 1036;
  35.    public static final int SUBLANG_FRENCH = 1036;
  36.    public static final int SUBLANG_FRENCH_BELGIAN = 2060;
  37.    public static final int SUBLANG_FRENCH_CANADIAN = 3084;
  38.    public static final int SUBLANG_FRENCH_SWISS = 4108;
  39.    public static final int LANG_GERMAN = 1031;
  40.    public static final int SUBLANG_GERMAN = 1031;
  41.    public static final int SUBLANG_GERMAN_SWISS = 2055;
  42.    public static final int SUBLANG_GERMAN_AUSTRIAN = 3079;
  43.    public static final int LANG_GREEK = 1032;
  44.    public static final int LANG_HEBREW = 1037;
  45.    public static final int LANG_HUNGARIAN = 1038;
  46.    public static final int LANG_ICELANDIC = 1039;
  47.    public static final int LANG_INDONESIAN = 1057;
  48.    public static final int LANG_ITALIAN = 1040;
  49.    public static final int SUBLANG_ITALIAN = 1040;
  50.    public static final int SUBLANG_ITALIAN_SWISS = 2064;
  51.    public static final int LANG_JAPANESE = 1041;
  52.    public static final int LANG_KOREAN = 1042;
  53.    public static final int LANG_LATVIAN = 1062;
  54.    public static final int LANG_LITHUANIAN = 1063;
  55.    public static final int LANG_NORWEGIAN = 1044;
  56.    public static final int SUBLANG_NORWEGIAN_BOKMAL = 1044;
  57.    public static final int SUBLANG_NORWEGIAN_NYNORSK = 2068;
  58.    public static final int LANG_POLISH = 1045;
  59.    public static final int LANG_PORTUGUESE = 1046;
  60.    public static final int SUBLANG_PORTUGUESE = 1046;
  61.    public static final int SUBLANG_PORTUGUESE_BRAZILIAN = 2070;
  62.    public static final int LANG_ROMANIAN = 1048;
  63.    public static final int LANG_RUSSIAN = 1049;
  64.    public static final int LANG_SLOVAK = 1051;
  65.    public static final int LANG_SLOVENIAN = 1060;
  66.    public static final int LANG_SORBIAN = 1070;
  67.    public static final int LANG_SPANISH = 1034;
  68.    public static final int SUBLANG_SPANISH = 1034;
  69.    public static final int SUBLANG_SPANISH_MEXICAN = 2058;
  70.    public static final int SUBLANG_SPANISH_MODERN = 3082;
  71.    public static final int LANG_SWEDISH = 1053;
  72.    public static final int LANG_THAI = 1054;
  73.    public static final int LANG_TURKISH = 1055;
  74.    public static final int LANG_UKRAINIAN = 1058;
  75.    public static final int LANG_ARABIC = 1025;
  76.    private static char[] baseCodePage;
  77.    private static boolean isDBCSBase;
  78.  
  79.    public static byte JavaStringToLocalString(char var0) {
  80.       byte[] var1 = new byte[1];
  81.       char[] var2 = new char[]{var0};
  82.       pUnicodeToAnsi(var2, var1, 0, 1, 0);
  83.       return var1[0];
  84.    }
  85.  
  86.    public static byte[] JavaStringToLocalString(char[] var0) {
  87.       return JavaStringToLocalString(var0, 0, var0.length);
  88.    }
  89.  
  90.    public static byte[] JavaStringToLocalString(char[] var0, int var1, int var2) {
  91.       byte[] var3 = new byte[pQueryUnicodeToAnsi(var0, var1, var2, 0)];
  92.       pUnicodeToAnsi(var0, var3, var1, var2, 0);
  93.       return var3;
  94.    }
  95.  
  96.    private static native int pGetKeyboardLayouts(int[] var0);
  97.  
  98.    public static String getKeyboardLanguageName(int var0) {
  99.       return pGetKeyboardLayoutName(var0);
  100.    }
  101.  
  102.    private static native int pAnsiToUnicode(byte[] var0, char[] var1, int var2, int var3, int var4);
  103.  
  104.    private SystemX() {
  105.       isDBCSBase = isBaseDBCS();
  106.       if (isDBCSBase) {
  107.          baseCodePage = null;
  108.       } else {
  109.          baseCodePage = new char[256];
  110.          byte[] var1 = new byte[256];
  111.          int var2 = 0;
  112.  
  113.          do {
  114.             var1[var2] = (byte)var2;
  115.             ++var2;
  116.          } while(var2 < 256);
  117.  
  118.          if (pAnsiToUnicode(var1, baseCodePage, 0, 256, 0) != 256) {
  119.             baseCodePage = null;
  120.          }
  121.       }
  122.  
  123.    }
  124.  
  125.    public static int getNumKeyboardLanguages() {
  126.       return pGetNumKeyboardLayouts();
  127.    }
  128.  
  129.    private static native String pGetKeyboardLayoutName(int var0);
  130.  
  131.    private static native int pQueryUnicodeToAnsi(char[] var0, int var1, int var2, int var3);
  132.  
  133.    public static int getKeyboardLanguage() {
  134.       return pGetKeyboardLayout() & '\uffff';
  135.    }
  136.  
  137.    private static native boolean pSetKeyboardLayout(int var0, int var1);
  138.  
  139.    public static boolean setKeyboardLanguage(Applet var0, int var1) {
  140.       ComponentPeer var2 = ((Component)var0).getPeer();
  141.       if (var2 != null) {
  142.          ComponentPeerX var3 = (ComponentPeerX)var2;
  143.          int var4 = var3.gethwnd();
  144.          return pSetKeyboardLayout(var4, var1);
  145.       } else {
  146.          return false;
  147.       }
  148.    }
  149.  
  150.    public static int getKeyboardLanguages(int[] var0) {
  151.       return pGetKeyboardLayouts(var0);
  152.    }
  153.  
  154.    public static int[] getKeyboardLanguages() {
  155.       int[] var0 = new int[pGetNumKeyboardLayouts()];
  156.       pGetKeyboardLayouts(var0);
  157.       return var0;
  158.    }
  159.  
  160.    private static native int pUnicodeToAnsi(char[] var0, byte[] var1, int var2, int var3, int var4);
  161.  
  162.    private static native int pGetNumKeyboardLayouts();
  163.  
  164.    private static native int pGetKeyboardLayout();
  165.  
  166.    public static native boolean isLocalCharDBCSLeadByte(byte var0);
  167.  
  168.    public static String LocalStringToJavaString(String var0) {
  169.       int var1 = var0.length();
  170.       char[] var2 = new char[var1];
  171.       byte[] var3 = new byte[var1];
  172.       var0.getBytes(0, var1, var3, 0);
  173.       if (baseCodePage != null) {
  174.          for(int var4 = 0; var4 < var1; ++var4) {
  175.             var2[var4] = baseCodePage[var3[var4]];
  176.          }
  177.       } else {
  178.          var1 = pAnsiToUnicode(var3, var2, 0, var1, 0);
  179.       }
  180.  
  181.       return new String(var2, 0, var1);
  182.    }
  183.  
  184.    private static native int pQueryAnsiToUnicode(byte[] var0, int var1, int var2, int var3);
  185.  
  186.    public static char[] LocalStringToJavaString(byte[] var0) {
  187.       return LocalStringToJavaString((byte[])var0, 0, var0.length);
  188.    }
  189.  
  190.    public static char[] LocalStringToJavaString(char[] var0) {
  191.       return LocalStringToJavaString((char[])var0, 0, var0.length);
  192.    }
  193.  
  194.    public static char[] LocalStringToJavaString(byte[] var0, int var1, int var2) {
  195.       char[] var3;
  196.       if (baseCodePage != null) {
  197.          var3 = new char[var2];
  198.  
  199.          for(int var4 = 0; var4 < var2; ++var4) {
  200.             var3[var4] = baseCodePage[var0[var4 + var1]];
  201.          }
  202.       } else {
  203.          var3 = new char[pQueryAnsiToUnicode(var0, var1, var2, 0)];
  204.          pAnsiToUnicode(var0, var3, var1, var2, 0);
  205.       }
  206.  
  207.       return var3;
  208.    }
  209.  
  210.    private static native boolean isBaseDBCS();
  211.  
  212.    public static char[] LocalStringToJavaString(char[] var0, int var1, int var2) {
  213.       char[] var3;
  214.       if (baseCodePage != null) {
  215.          var3 = new char[var2];
  216.  
  217.          for(int var4 = 0; var4 < var2; ++var4) {
  218.             var3[var4] = baseCodePage[var0[var4 + var1]];
  219.          }
  220.       } else {
  221.          byte[] var7 = new byte[var2];
  222.  
  223.          for(int var5 = 0; var5 < var2; ++var5) {
  224.             var7[var5] = (byte)var0[var5];
  225.          }
  226.  
  227.          var3 = new char[pQueryAnsiToUnicode(var7, var1, var2, 0)];
  228.          pAnsiToUnicode(var7, var3, var1, var2, 0);
  229.       }
  230.  
  231.       return var3;
  232.    }
  233.  
  234.    public static char LocalStringToJavaString(byte var0) {
  235.       if (baseCodePage != null) {
  236.          return baseCodePage[var0];
  237.       } else {
  238.          byte[] var1 = new byte[1];
  239.          char[] var2 = new char[1];
  240.          var1[0] = var0;
  241.          pAnsiToUnicode(var1, var2, 0, 1, 0);
  242.          return var2[0];
  243.       }
  244.    }
  245. }
  246.